package com.ctcemti.mdm.project.sys.entity;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.Id;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @ClassName SysMenu
 * @Description 菜单管理
 * @Author bxf
 * @Date 11:04 2019/7/12
 * @Version V1.0
 **/
@Data
@ApiModel(value = "菜单")
@JsonIgnoreProperties(value={"handler"})//是json序列化时忽略bean中的一些属性序列化和反序列化时抛出的异常.
public class SysMenu implements Serializable{
    /**
     * 主键
     */
    @ApiModelProperty(value="主键id",required = true)
    @Id
    private Integer id;
    /**
     * 名称
     */
    @ApiModelProperty(value="名称")
    private String name;
    /**
     * 类型（1-菜单，2-按钮）
     */
    @ApiModelProperty(value="类型（1-菜单，2-按钮）")
    private Integer type;
    /**
     * 父id
     */
    @ApiModelProperty(value="父id")
    private Integer pid;
    /**
     * 地址
     */
    @ApiModelProperty(value="地址")
    private String url;
    /**
     * 排序
     */
    @ApiModelProperty(value="排序")
    private Integer sort;
    /**
     * 图表
     */
    @ApiModelProperty(value="图标")
    private String icon;
    /**
     * 权限
     */
    @ApiModelProperty(value="权限")
    private String permission;
    /**
     * 备注
     */
    @ApiModelProperty(value="备注")
    private String comment;
    /**
     * 创建人
     */
    @ApiModelProperty(value="创建人")
    private String creator;
    /**
     * 创建时间
     */
    @ApiModelProperty(value="创建时间")
    private Date createDate;
    /**
     * 修改人
     */
    @ApiModelProperty(value="修改人")
    private String modifiedBy;
    /**
     * 修改时间
     */
    @ApiModelProperty(value="修改时间")
    private Date modifyDate;

    @Transient
    private boolean parent = true;

    @Transient
    private boolean open = false;

    @Transient
    private List<SysMenu> obj = new ArrayList<SysMenu>();

}